<?php

    class BuscadorEquiposController
    {
        var $nombre;
        var $filtroNombre;
        var $anoFundacionMin;
        var $anoFundacionMax;
        var $puntosMin;
        var $puntosMax;
        var $partidosJugadosMin;
        var $partidosJugadosMax;
        var $partidosGanadosMin;
        var $partidosGanadosMax;
        var $partidosEmpatadosMin;
        var $partidosEmpatadosMax;

        var $resultados;
        var $errs;

        function BuscadorEquiposController()
        {
            $this->errs = array();
            $this->resultados = array();

            //1era vez
            $this->nombre = "";
            $this->filtroNombre = "-1";
            $this->anoFundacionMin = 0;
            $this->anoFundacionMax = 9999;
            $this->puntosMin = 0;
            $this->puntosMax = 9999;
            $this->partidosJugadosMin = 0;
            $this->partidosJugadosMax = 9999;
            $this->partidosGanadosMin = 0;
            $this->partidosGanadosMax = 9999;
            $this->partidosEmpatadosMin = 0;
            $this->partidosEmpatadosMax = 9999;

            if ($_SERVER["REQUEST_METHOD"] == "POST")
            {
                $this->parseForm();
                if (!$this->validate()) return;

                // Realizar busqueda
                $equipos = EquiposDAO::getAll();

                foreach ($equipos as $equipo)
                {
                    // Al ppio todos son resultado
                    $isResult = true;

                    // Vamos descartando
                    if ($this->filtroNombre != "-1")
                    {

                        if ($this->filtroNombre === "contains")
                            if (strripos($equipo->nombre, $this->nombre) === false)
                                $isResult = false;

                        if ($this->filtroNombre === "is")
                            if ($equipo->nombre != $this->nombre)
                                $isResult = false;
                    }

                    if ($equipo->anoFundacion > $this->anoFundacionMax || $equipo->anoFundacion < $this->anoFundacionMin)
                        $isResult = false;

                    if ($equipo->puntos > $this->puntosMax || $equipo->puntos < $this->puntosMin)
                        $isResult = false;

                    if ($equipo->partidosJugados > $this->partidosJugadosMax || $equipo->partidosJugados < $this->partidosJugadosMin)
                        $isResult = false;
                    
                    if ($equipo->partidosEmpatados > $this->partidosEmpatadosMax || $equipo->partidosEmpatados < $this->partidosEmpatadosMin)
                        $isResult = false;

                    if ($equipo->partidosGanados > $this->partidosGanadosMax || $equipo->partidosGanados < $this->partidosGanadosMin)
                        $isResult = false;


                    if ($isResult)
                        $this->resultados[] = $equipo;

                }


            }
        }


        function parseForm()
        {
            $this->nombre = Form::getPost('nombre');
            $this->filtroNombre = Form::getPost('filtro_nombre');
            $this->anoFundacionMin = Form::getPost('anoFundacion_min');
            $this->anoFundacionMax = Form::getPost('anoFundacion_max');
            $this->puntosMin = Form::getPost('puntos_min');
            $this->puntosMax = Form::getPost('puntos_max');
            $this->partidosJugadosMin = Form::getPost('partidosJugados_min');
            $this->partidosJugadosMax = Form::getPost('partidosJugados_max');
            $this->partidosGanadosMin = Form::getPost('partidosGanados_min');
            $this->partidosGanadosMax = Form::getPost('partidosGanados_max');
            $this->partidosEmpatadosMin = Form::getPost('partidosEmpatados_min');
            $this->partidosEmpatadosMax = Form::getPost('partidosEmpatados_max');

            
        }

        function validate()
        {
            if (!is_numeric($this->anoFundacionMin))
                    $this->errs[] = "Ano fundacion debe ser numerico";

            if (!is_numeric($this->anoFundacionMax))
                    $this->errs[] = "Ano fundacion debe ser numerico";

            if (!is_numeric($this->puntosMin))
                    $this->errs[] = "Puntos debe ser numerico";

            if (!is_numeric($this->puntosMax))
                    $this->errs[] = "Puntos debe ser numerico";

            if (!is_numeric($this->partidosJugadosMin))
                    $this->errs[] = "Partidos jugados debe ser numerico";

            if (!is_numeric($this->partidosJugadosMax))
                    $this->errs[] = "Partidos jugados debe ser numerico";

            if (!is_numeric($this->partidosGanadosMin))
                    $this->errs[] = "Partidos ganados debe ser numerico";

            if (!is_numeric($this->partidosGanadosMax))
                    $this->errs[] = "Partidos ganados debe ser numerico";

            if (!is_numeric($this->partidosEmpatadosMin))
                    $this->errs[] = "Partidos empatados debe ser numerico";

            if (!is_numeric($this->partidosEmpatadosMax))
                    $this->errs[] = "Partidos empatados debe ser numerico";

            return (sizeof($this->errs) == 0);
        }
    }

?>